3fe0f337380dce7ea9d4734012d1effc038040c9,findbugs/src/java/edu/umd/cs/findbugs/ba/IsNullValueAnalysis.java,IsNullValueAnalysis,transferInstruction,#InstructionHandle#BasicBlock#IsNullValueFrame#,79
Before Change
throws DataflowAnalysisException {
visitor.setFrame(fact);
handle.getInstruction().accept(visitor);
}
After Change
throws DataflowAnalysisException {
visitor.setFrame(fact);
Instruction ins = handle.getInstruction();
ins.accept(visitor);
// Special case:
// The instruction may have produced previously seen values
// about which new is-null information is known.
// If any other instances of the produced values exist,
// update their is-null information.
int numProduced = ins.produceStack(methodGen.getConstantPool());
if (numProduced == Constants.UNPREDICTABLE)
throw new AnalysisException("Unpredictable stack production", methodGen, handle);
int start = fact.getNumSlots() - numProduced;